PARSER page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
PARSER page# 0002 next prev
12: BEGIN PARSER ↔ SUBTTL PARSER - PARITY ERROR SERVICE ROUTINE
13:
14:
15: AP2CHL←CAT(P2CH,\APRCHN)
16:
17: ↑PARCLK:
18:
19: CONO PI,APROFF
20: SETOM P2RFLG
21: SETZM PARFLG
22: JRST PARIN0
23:
24: ↑PARINT:
25: CONO PI,APROFF
26: PARIN0: MOVEM P,PARPSAV
27: MOVE P,APRPDL
28: PUSHACS
29: MOVEI PID,P1PID
30: PUSHJ P,DISCRLF
31: PUSHJ P,DISDATE
32: SKIPN P2RFLG
33: JRST PARIN1
34:
35: PUSHJ P,DISMES
36: ASCIZ /πππππPDP-6 DETECTED PARITY ERROR. PC = /
37: MOVE TAC,AP2CHL
38: TLNE TAC,USRMOD
39: TRNN TAC,777760
40: JRST PARIN3
41: HRRZ TAC1,LASTPR+P2PID
42: ANDI TAC1,776000
43: ADDI TAC,(TAC1)
44: JRST PARIN3
45:
46: PARIN1: PUSHJ P,DISMES
47: ASCIZ /πππππPARITY ERROR. PC = /
48: MOVE TAC,APRCHL
49: TLNE TAC,USRMOD
50: TRNN TAC,777760
51: JRST PARIN3
52: TRNN TAC,400000
53: JRST PARIN2
54: HRRZ TAC1,APRCHL
55: HLRZ AC3,LASTPR+P1PID
56: TRO AC3,1777
57: CAIG TAC1,(AC3)
58: JRST PARIN2
59: CAIGE AC3,400000
60: MOVEI AC3,400000
61: SUBI TAC,(AC3)
62: HRRZ AC3,LASTPR+P1PID
63: LSH AC3,=9
64: ANDI AC3,776000
65: TRC AC3,400000
66: ADDI TAC,(AC3)
67: MOVEM TAC,ERRPC
68: PUSHJ P,DISMES
69: ASCIZ /#/
70: JRST PARIN4
71:
PARSER page# 0003 next prev
73: SUBTTL HERE WE SEARCH FOR REAL ERRORS.
74: PARIN2: HRRZ TAC1,LASTPR+P1PID
75: ANDI TAC1,777000
76: ADDI TAC,(TAC1)
77: PARIN3: MOVEM TAC,ERRPC
78: PARIN4: PUSHJ P,DISOCT
79: PUSHJ P,DISCRLF
80:
81: CONO PI,@PARCON
82: SETOM ERRLOC
83: SETOM LASLOS
84: SETZB TAC1,PARSJN
85: SETZM SYSERR
86: MOVE TAC,ERRPC
87: TLNE TAC,USRMOD
88: JRST PARIN5
89: SETOM SYSERR
90: ANDI TAC,-1
91: CAIE TAC,SHFBLT
92: CAIN TAC,SHFBLT+1
93: MOVE TAC1,PARSJB
94: MOVEM TAC1,PARSJN
95:
96: PARIN5: SETZM ERRJOB
97: SETZM ERRJOB+1
98:
99: REPEAT 0,< ;12/3/73
100: CONI APR,TAC ;GET STATE OF SYS WR REF KLUGE
101: HRRM TAC,SYSERR ;SAVE IN RIGHT SIDE OF SYSERR.
102: DATAO PTR,[0] ;DISABLE SYS WR REF KLUGE.
103: >
104:
105: MOVE TAC1,RMEMSIZ
106: CAILE TAC1,400000
107: MOVEI TAC1,400000
108: MOVNI TAC1,-20(TAC1)
109: HRLZ TAC1,TAC1
110: HRRI TAC1,20
111: MOVEI AC3,@PARCON
112: PARL0: MOVE 0,(TAC1)
113: CONSO PI,(AC3)
114: PARL1: AOBJN TAC1,PARL0
115: JUMPGE TAC1,PARL2
116: CONO PI,(AC3)
117: MOVEM 0,(TAC1)
118: PUSH P,TAC1
119: PUSHJ P,PARERF
120: POP P,TAC1
121: MOVEI AC3,@PARCON
122: JRST PARL1
123:
124: PARL2: MOVE TAC1,RMEMSIZ
125: CAIG TAC1,400000
126: JRST PARL5
127: SUBI TAC1,400000
128: MOVN TAC1,TAC1
129: HRLZ TAC1,TAC1
130: HRRI TAC1,400000
131: MOVEI AC3,@PARCON
132: PARL3: MOVE 0,(TAC1)
133: CONSO PI,(AC3)
134: PARL4: AOBJN TAC1,PARL3
135: JUMPGE TAC1,PARL5
136: CONO PI,(AC3)
137: MOVEM 0,(TAC1)
138: PUSH P,TAC1
139: PUSHJ P,PARERF
140: POP P,TAC1
141: MOVEI AC3,@PARCON
142: JRST PARL4
143:
144: PARL5: SKIPL ERRLOC
145: JRST PARL6
146: PUSHJ P,DISMES
147: ASCIZ /LOCATION INDETERMINATE
148: /
149: PUSHJ P,ZSHAD
150: JFCL
151: HRROS SYSERR
152: PARL6:
153: MOVE TAC,SYSERR
154: REPEAT 0,< ;12/1/73
155: TRNE TAC,SWRENB ;WAS SYS WR REF KLUGE ENABLED?
156: DATAO PTR,[1] ;YES. RE-ENABLE IT
157: >
158: JUMPGE TAC,PARL7
159: PUSHJ P,SYSFIX
160: JFCL
161: JFCL
162:
163: PARL7: PUSHJ P,DISCRLF
164: POPACS
165: MOVE P,PARPSAV
166: SKIPN P2RFLG
167: JRST PARL9
168: SETZM P2RFLG
169: CONO PI,APRON
170: POPJ P,
171:
172: PARL9: CONO PI,APRON
173: JEN @APRCHL
174:
175:
PARSER page# 0004 next prev
177: SUBTTL HERE WHEN A REAL ERROR IS FOUND.
178: PARERF: MOVE TAC,ERRLOC
179: HRRZM TAC1,ERRLOC
180: JUMPGE TAC,PARER1
181: PUSHJ P,DISMES
182: ASCIZ /LOC DATA RELOC NAME(J)
183: /
184: PARER1: HRRZ TAC,ERRLOC
185: PUSHJ P,DISLOC
186: PUSHJ P,DISTAB
187: HRRZ TAC,ERRLOC
188: MOVE TAC,(TAC)
189: PUSHJ P,DISOCH
190: PUSHJ P,DISTAB
191: HRRZ DSER,ERRLOC
192: PUSHJ P,CORGBP
193: ILDB J,TAC
194: CAIGE J,JOBN
195: JUMPG J,PARER4
196: SKIPE PARSJN
197: JUMPE J,PARR4B
198: PARR1A: CAMN J,LASLOS
199: JRST DISCRLF
200: MOVEM J,LASLOS
201: JUMPG J,PARER2
202: PUSHJ P,DISMES
203: ASCIZ /UNUSED
204: /
205: POPJ P,
206:
207: PARER2: CAIE J,101
208: JRST PARER3
209: HRROS SYSERR
210: PUSHJ P,DISMES
211: ASCIZ /SYS
212: /
213: POPJ P,
214:
215: PARER3: PUSHJ P,DISMES
216: ASCIZ /FS
217: /
218: POPJ P,
219:
220:
221: PARR4B: MOVE J,PARSJN
222: HRRZ TAC,PARBLK
223: SUBI DSER,(TAC)
224: JUMPL DSER,PARR4C
225: HLRZ TAC,PARBLK
226: CAILE DSER,(TAC)
227: PARR4C: MOVEI J,0
228: JUMPE J,PARR1A
229: PARER4: PUSH P,J
230: HRRZ TAC1,JBTADR(J)
231: CAMN J,PARSJN
232: HRRZ TAC1,PARBLK
233: HRRZ TAC,ERRLOC
234: SUBI TAC,(TAC1)
235: MOVEM TAC,RERLOC
236: PUSHJ P,DISLOC
237: MOVE J,(P)
238: CAMN J,LASLOS
239: JRST PARR4A
240: MOVEM J,LASLOS
241: PUSHJ P,DISTAB
242: MOVE J,(P)
243: PUSHJ P,DISJOB
244: CAME J,PARSJN
245: JRST PARR4A
246: PUSHJ P,DISMES
247: ASCIZ / SHUFFLE/
248: PARR4A: PUSHJ P,DISCRLF
249: MOVE J,(P)
250: MOVE TAC,JBTSTS(J)
251: TLNN TAC,JSEG
252: JRST PARER8
253: PUSHJ P,MARKERR
254: JRST TPOPJ
255: MOVEI TAC,400000
256: ADDM TAC,RERLOC
257: MOVEI J,JOBN-1
258: PARER5: LDB TAC,PSEGN
259: CAME TAC,(P)
260: SOJG J,PARER5
261: JUMPLE J,PARER6
262: PUSH P,J
263: PUSHJ P,TELUSR
264: POP P,J
265: SOJG J,PARER5
266: PARER6: POP P,J
267: MOVE TAC,PRJPRG(J)
268: MOVEM TAC,JOBNAM(J)
269: POPJ P,
270:
271: PARER8: PUSHJ P,TELUSR
272: JRST TPOPJ
273:
274: TELUSR: PUSHJ P,MARKERR
275: POPJ P,
276: MOVSI TAC,INTPAR
277: TDNN TAC,JBTIEN(J)
278: JRST TELUS1
279: IORM TAC,JBTIRQ(J)
280: SETOM INTREQ(PID)
281: MOVE TAC1,RERLOC
282: MOVEM TAC1,INTDTM(J)
283: CONO PI,1B24!1(7-CLKCHN)
284: POPJ P,
285:
286: TELUS1: PUSHJ P,TTYERR
287: MOVE TAC,RERLOC
288: HLRZ AC3,JBTADR(J)
289: CAMN J,PARSJN
290: HLRZ AC3,PARBLK
291: CAILE TAC,(AC3)
292: JRST TELUS2
293: PUSHJ P,INLMES
294: ASCIZ /PARITY ERROR IN YOUR CORE IMAGE. LOC = /
295: JRST TELUS3
296:
297: TELUS2: PUSHJ P,INLMES
298: ASCIZ /PARITY ERROR IN YOUR UPPER SEGMENT. LOC = /
299: TELUS3: MOVE TAC,RERLOC
300: PUSHJ P,OCTPNT
301: PUSHJ P,PRCRCC
302: PUSHJ P,TTYSTR
303: SKIPL JBTSTS(J)
304: POPJ P,
305: TELSTP: MOVE TAC,JBTSTS(J)
306: TLNE TAC,JLOG
307: JRST STOP1
308: JRST ESTOP
309:
310:
311:
312:
313: MARKERR:
314: JUMPLE J,CPOPJ
315: CAIL J,JOBN
316: POPJ P,
317: MOVEI TAC,(J)
318: SETZ TAC1,
319: LSHC TAC,-5
320: ROT TAC1,5
321: MOVEI AC3,1
322: ROT AC3,-20(TAC1)
323: TDNE AC3,ERRJOB(TAC)
324: POPJ P,
325: IORM AC3,ERRJOB(TAC)
326: MOVE TAC,RERLOC
327: HLRZ AC3,JBTADR(J)
328: CAIG TAC,(AC3)
329: SKIPE STIME(J)
330: JRST CPOPJ1
331: HLRZ TAC,JBTSWP(J)
332: JUMPE TAC,CPOPJ1
333: SKIPN XJOB(J)
334: AOS XJOB
335: AOS XJOB(J)
336: POPJ P,
PARSER page# 0005 next prev
338: SUBTTL P2 PARITY ERROR INTERRUPT
339: ↑P2RINT:
340: CONO PI,@P2RCON
341: MOVEM TAC,P2SA
342: MOVEI TAC,17
343: MOVES (TAC)
344: SOJGE TAC,.-1
345: CONSZ PI,@P2RCON
346: JRST PARACS
347: SETOM PARFLG
348: MOVE TAC,PARFLG
349: JUMPN TAC,.-1
350: MOVE TAC,P2RFLG
351: JUMPN TAC,.-1
352: JRST P2ROUT
353: PARACS: CONO PI,@P2RCON
354: P2ROUT: MOVE TAC,P2SA
355: JEN @AP2CHL
356:
357: BEND PARSER
EOF: PARSER end-of-file. cnt=4